package br.org.acessobrasil.portal.action.itemConteudo;

import org.apache.log4j.Logger;
import org.springframework.transaction.annotation.Transactional;

import br.org.acessobrasil.portal.Gerenciador;
import br.org.acessobrasil.portal.modelo.ItemConteudo;
import br.org.acessobrasil.portal.modelo.Usuario;
import br.org.acessobrasil.portal.vista.FormularioItemConteudo;

@Transactional
public class RestaurarItemConteudoAction extends BaseItemConteudo{

	private static final long serialVersionUID = -5456072858418564799L;

	private static Logger logger = Logger.getLogger(RestaurarItemConteudoAction.class);
	
	public RestaurarItemConteudoAction() {}
	
	@Override
	public String execute() throws Exception {
		ItemConteudo itemConteudo = null;
		Usuario usuario = getUsuarioLogado();
		try{
			itemConteudo = getItemConteudoFacade().restaurarVersao(usuario,getItemConteudo().getNuItemConteudo());
			
			setItemConteudo(itemConteudo);
			
			String formulario;
			if(usuario.isModoDesenvolvimento()){
				formulario = FormularioItemConteudo.gerarFormularioHtml(itemConteudo,"editarItemConteudo.action",true);
			}else{
				formulario = FormularioItemConteudo.gerarFormularioHtml(itemConteudo,"editarItemConteudo.action",false);
			}
			avaliarAcessibilidade(itemConteudo);
			formulario += gerarHtmlRelatorio(itemConteudo);
			setFormEditar(formulario);
		} catch (Exception e) {
			usuario.addActionError("Erro ao restaurar item" + e.getMessage());
			logger.error("Erro ao restaurar item", e);
		}
		Gerenciador.limparCache();
		return SUCCESS;
	}
}
